package com.ruoyi.project.tugboat.mapper;

import java.util.Date;
import java.util.List;
import com.ruoyi.project.tugboat.domain.TMqttMsg;
import org.apache.ibatis.annotations.Param;

/**
 * 【请填写功能名称】Mapper接口
 * 
 * @author ruoyi
 * @date 2023-07-20
 */
public interface TMqttMsgMapper 
{
    /**
     * 查询所有还未转化的MQTT报文
     * @return
     */
    public List<TMqttMsg> selectAllNotConverted();
    
    /**
     * 批量更新convertFlag
     * @param tMqttMsgList
     */
    public void updateConvertFlagBatch(@Param("tMqttMsgList") List<TMqttMsg> tMqttMsgList);

    /**
     * 转换成功时更新convertFlag为1
     * @param tMqttMsg
     */
    public void updateConvertFlag(@Param("tMqttMsg") TMqttMsg tMqttMsg);
    
    /**
     * 转换失败时更新convertFlag为2并记录转换失败原因
     * @param tMqttMsg
     * @param failReason
     */
    public void updateConvertFlagAndFailReason(@Param("tMqttMsg") TMqttMsg tMqttMsg,@Param("failReason") String failReason);
    
    public List<TMqttMsg> selectTMqttMsgListByParams(@Param("tugboatId") String tugboatId, 
                                                     @Param("operType") String operType, 
                                                     @Param("deviceId") String deviceId, 
                                                     @Param("msgType") String msgType, 
                                                     @Param("startTime") Date startTime, 
                                                     @Param("endTime") Date endTime);
    
    /**
     * 查询【请填写功能名称】
     * 
     * @param msgid 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public TMqttMsg selectTMqttMsgByMsgid(String msgid);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param tMqttMsg 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<TMqttMsg> selectTMqttMsgList(TMqttMsg tMqttMsg);

    /**
     * 新增【请填写功能名称】
     * 
     * @param tMqttMsg 【请填写功能名称】
     * @return 结果
     */
    public int insertTMqttMsg(TMqttMsg tMqttMsg);

    /**
     * 修改【请填写功能名称】
     * 
     * @param tMqttMsg 【请填写功能名称】
     * @return 结果
     */
    public int updateTMqttMsg(TMqttMsg tMqttMsg);

    /**
     * 删除【请填写功能名称】
     * 
     * @param msgid 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteTMqttMsgByMsgid(String msgid);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param msgids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTMqttMsgByMsgids(String[] msgids);
}
